Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2009, 07:22
Интересующийся
Отправить личное сообщение для .andreev Посмотреть профиль Найти все сообщения от .andreev
 
Регистрация: 21.10.2009
Сообщений: 16

xmlHttpRequest: Opera vs FF&IE
var xmlHttp = getXmlHttp();

function getXmlHttp(){
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (ee) {
        }
    }
    if (typeof XMLHttpRequest!='undefined') {
        return new XMLHttpRequest();
    }
}

function add2basket(){
//формируем список параметров
   sBody = aParams.join("&");
   
   xmlHttp.open("post", phpPost, true);
   xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlHttp.onreadystatechange = serverResponce;
   xmlHttp.send(sBody);
}

function serverResponce(){
   if(xmlHttp.readyState == 4){
      if(xmlHttp.status == 200){ alert(xmlHttp.responseText);}
      else{ alert("err!");}
   }
}

phpPost - скрипт на php, который добавляет товар в корзину и
print "товар добавлен в корзину";

В FF3.5.3, IE6&7, Opera9.50 - все работает как задумано.
В опера 9.63, 10.0 происходит переадрессация на phpPost и вывод строки "товар добавлен в корзину".
Что-то изменилось в опера?
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2009, 17:23
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Возможно, в Опере у Вас не отрабатывает return false из сабмита.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2009, 18:31
Интересующийся
Отправить личное сообщение для .andreev Посмотреть профиль Найти все сообщения от .andreev
 
Регистрация: 21.10.2009
Сообщений: 16

А почему в 9.50 работает? И как это пофиксить, а то перед людьми неудобно
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2009, 18:41
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Неработающий пример в студию Так не скажешь, что не работает.
Ответить с цитированием
  #5 (permalink)  
Старый 29.10.2009, 13:11
Интересующийся
Отправить личное сообщение для .andreev Посмотреть профиль Найти все сообщения от .andreev
 
Регистрация: 21.10.2009
Сообщений: 16

<form name='product' method='post' action='add2basket.php' Onsubmit='add2basket(); return false;'>
<input type='hidden' name='prodID' value='908' />
<input type='submit' value='В корзину' />
</form>


add2basket.php делает, что ему положено и
print "Товар добавлен в корзину";

весь функционал javascript приведен в первом посте, кроме "//формируем список параметров" можно написать sBody='prodID=908'
Ответить с цитированием
  #6 (permalink)  
Старый 29.10.2009, 14:28
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А form.onsubmit вообще вызывается в Опере? Вставьте туда какой-то алерт, чтбы видеть. Похоже на то, что форма просто сабмитится, минуя онсабмит
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все-таки Opera -- мудацкий браузер Kolyaj Общие вопросы Javascript 27 29.10.2009 23:43
Dojo и Opera Idb Dojo toolkit 4 25.06.2009 09:43
Создание и уничтожение XMLHttpRequest Vlas AJAX и COMET 9 22.05.2009 12:38
Проблема с Ajax запросом в IE и Opera flash_uz AJAX и COMET 0 30.04.2009 15:08
Не возвращается XML-ответ в Opera после AJAX-запроса Yojik Общие вопросы Javascript 4 17.03.2008 05:56